package com.supermap.test;


import com.supermap.data.*;
import com.supermap.data.processing.*;
import com.supermap.realspace.CacheFileType;

import com.supermap.data.DatasetGrid;
import com.supermap.data.SteppedEvent;
import com.supermap.data.SteppedListener;
import com.supermap.data.Workspace;
import com.supermap.data.processing.TerrainCacheBuilder;

public class ObliquePhotoBuild {

    //倾斜入库
    public static void main(String[] args) {

//            

            ObliquePhotogrammetryBuilder obliquePhotogrammetryBuilder = new ObliquePhotogrammetryBuilder(new ObliqueProcessType[]{ObliqueProcessType.MODIFY_CENTER,ObliqueProcessType.CLIPPING,ObliqueProcessType.COMBINE_NODE,ObliqueProcessType.COMPRESS_TEXTURE});
            //设置存储类型
            obliquePhotogrammetryBuilder.setStorageType(StorageType.Original);
            //  设置纹理压缩类型,可以查组件帮助文档TextureCompressType查看不同类型以及对应含义
            obliquePhotogrammetryBuilder.setTexCompressType(TextureCompressType.TEXTURECOMPRESS_CRNDXT5);
            //  设置约束类型。 软约束，裁剪边界按照原始数据计算；硬约束，裁剪边界按照新数据计算
            obliquePhotogrammetryBuilder. setConstraintType(ConstraintType.SOFTCONSTRAINT);
            // 设置输入的SCP名字。
            obliquePhotogrammetryBuilder.setFieldName("Config.scp");
            // 设置结果数据的缓存文件格式。
            obliquePhotogrammetryBuilder.setFileType(CacheFileType.S3MB);
            obliquePhotogrammetryBuilder.setS3MVersion(S3MVersion.VERSION_30);

            //设置中心点坐标单位
            obliquePhotogrammetryBuilder.setCenterPositionUnit(DataUnit.Meter);
            //设置目标坐标系

            obliquePhotogrammetryBuilder.setTargetPrjCoordSys(PrjCoordSys.fromEPSG(3857));
            obliquePhotogrammetryBuilder.setTargetCoordSysCoordSysTransMethod(CoordSysTransMethod.MTH_GEOCENTRIC_TRANSLATION);
            //设置几何压缩方式，包括不压缩、常规压缩、DRACO压缩。
            obliquePhotogrammetryBuilder.setVertexOptimazationType(VertexOptimizationType.VO_MESHOPT);
            // 设置合并根节点的金字塔层级数。
            obliquePhotogrammetryBuilder.setCombineLevel(3);
//            obliquePhotogrammetryBuilder.setCombineNodeType(CombineNodeType.ALL);
//            obliquePhotogrammetryBuilder.setRootNodeColorType(RootNodeColorType.RCT_TEXTUREANDVERTEXCOLOR);
            //设置线程数
            int  threadCount= 8;
            //倾斜入库

            try {
                    boolean build = obliquePhotogrammetryBuilder.build("E:\\MapData\\202410\\KW1--AA001-AA003\\Config.scp", "E:\\MapData\\202410\\result", threadCount);
                    System.out.println(build);
                    if(build) {
                        System.out.println("s3mb生成成功");
                    }
            } catch (Exception e) {
                    throw new RuntimeException(e);
            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }

    }

}
